package com.decheng.mq.config;

import com.decheng.mq.receiver.SimpleReceiver;
import com.decheng.mq.sender.SimpleSender;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author 孔德成
 * @slogan 致敬大师，致敬未来的你
 * @date 2021/9/16 2:22 下午
 * @desc 简单模式是最简单的消息模式，它包含一个生产者、一个消费者和一个队列。生产者向队列里发送消息，消费者从队列中获取消息并消费。
 * <p>
 * 创建一个名为simple.hello的队列、一个生产者和一个消费者
 * <p>
 * 运行后结果：生产者往队列中发送消息，消费者从队列中获取消息并消费。
 */
@Configuration
public class SimpleRabbitConfig {

    /**
     * @return 一个名为 simple.hello 的队列
     */
    @Bean
    public Queue hello() {
        return new Queue("simple.hello");
    }

    /**
     * 一个向 simple.hello 队列发送消息的生产者
     *
     * @return
     */
    @Bean
    public SimpleSender simpleSender() {
        return new SimpleSender();
    }

    /**
     * 一个从 simple.hello 队列接收消息的消费者
     *
     * @return
     */
    @Bean
    public SimpleReceiver simpleReceiver() {
        return new SimpleReceiver();
    }
}
